//
// Created by jingjia on 10/15/21.
//

#ifndef JINGJIA_JVM_CPP_OS_HPP
#define JINGJIA_JVM_CPP_OS_HPP

#include "../precompiled/precompiled.hpp"

// threads

enum ThreadType {
    vm_thread,
    cgc_thread,        // Concurrent GC thread
    pgc_thread,        // Parallel GC thread
    java_thread,
    compiler_thread,
    watcher_thread,
    os_thread
};

class Thread;

class OS : AllStatic{
public:
    static void create_thread(Thread* _thread, ThreadType threadType, size_t stack_size);
    static void start_thread(Thread* thread);
private:
    static void pd_start_thread(Thread* thread);
};


#endif //JINGJIA_JVM_CPP_OS_HPP
